
#include "supermarket.h"

//********************************************************************************************************************************
int main() {
	sup a[1000];
	goods g[1000];
	sta s[1000];
	int n;
	int m;
	int p;
	Wellcome(a,n,g,m,s,p);
	return 0;
}

void Wellcome(sup *a, int n,goods g[], int m,sta s[],int p) {
	while(1) {

		system("CLS");
		printf("\n");
		printf("\t\t超市进销管理系统\n");
		printf("\t---------------------------------\n");
		printf("\t\t请选择登录用户\n");
		printf("\t\t1.登录管理用户\n");
		printf("\t\t2.登录普通用户\n");
		printf("\t\t0.退出系统\n");
		printf("\t---------------------------------\n");
		printf("\t\t请选择...\n");
		printf("请选择...");

		char op[20];
		gets(op);
		int flag = 1;

		while (flag == 1)
			if (strcmp(op, "1") == 0) {
				Bossmenu(a,n,g,m,s,p);
			} else if (strcmp(op, "2") == 0) {
//				Staffmanu();
			} else if (strcmp(op, "0") == 0) {
				return;
			} else {
				printf("输入有误，请重试");
				system("pause");
			}
	}
	return ;
}


//管理用户登录界面
void Bossmenu(sup a[],int n,goods g[],int m,sta s[],int p) {
	while(1) {
		system("pause");
		system("CLS");
		printf("\n");
		printf("\t\t超市进销管理系统\n");
		printf("\t---------------------------------\n");
		printf("\t\t1.供应商管理\n");
		printf("\t\t2.商品管理\n");
		printf("\t\t3.员工管理\n");
		printf("\t\t4.采购管理\n");
		printf("\t\t0.退出系统\n");
		printf("\t---------------------------------\n");

		char option1[20];
		gets(option1);
		int flag = 1;
		while (flag == 1) {
			if (strcmp(option1, "1") == 0) {
				Supplier_Manage_Menu(a,n);
			} else if (strcmp(option1, "2") == 0) {
				Goods_Manage_Menu(g,m);
			} else if (strcmp(option1, "3") == 0) {
				Staff_Manage_Menu(s,p);
			} else if (strcmp(option1, "4") == 0) {
				
			} else if (strcmp(option1, "0") == 0) {

			}	else {
				printf("输入有误，请重试");
				system("pause");
				return ;
			}
		}
		return;
	}
}
////普通用户登录界面




int Supplier_Manage_Menu(sup *a, int n) {										//供应商管理菜单
	while(1) {
		fflush(stdin);
		system("CLS");
		printf("\n");
		printf("\t\t超市进销管理系统\n");
		printf("\t---------------------------------\n");
		printf("\t\t1.批量录入供应商数据\n");
		printf("\t\t2.查询并列出表中所有供应商信息\n");
		printf("\t\t3.修改指定供应商信息\n");
		printf("\t\t4.删除指定供应商数据\n");
		printf("\t\t0.退出\n");
		printf("\t---------------------------------\n");

		int flag = 1;
		char sup_manage_option[20];

		gets(sup_manage_option);
		if (strcmp(sup_manage_option, "1") == 0) {
			n = Add_supplier(a,n);

		} else if(strcmp(sup_manage_option, "2") == 0) {
			Search_list_Sup(a, n);
			system("pause");

		} else if (strcmp(sup_manage_option, "3") == 0) {
			Mod_supplier_data(a, n);
		} else if (strcmp(sup_manage_option, "4") == 0) {
			n = Delete_supplier_data(a,n);
			system("pause");

		} else if (strcmp(sup_manage_option, "0") == 0) {
			exit(0);
		} else {
			printf("输入有误，请重试");
			system("pause");
		}
	}
	return n;
}
////1.手动录入供应商信息
int Add_supplier(sup a[], int n) {
	printf("请输入要录入的供应商数量:");
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		printf("------------------------------------\n");//向文件中写入信息
		printf("第%d个供应商： \n", i + 1);
		printf("供应商编号：");
		scanf("%d", &a[i].su_num);				//供应商编号
		printf("供应商名称：");
		scanf("%s", a[i].name);					//供应商名称
		printf("简称：");
		scanf("%s", a[i].short_name);			//供应商简称
		printf("地址：");
		scanf("%s", a[i].address);				//地址
		printf("公司电话：");
		scanf("%d", &a[i].comp_phoneNum);			//公司电话
		printf("邮件：");
		scanf("%s", a[i].mail);					//邮件
		printf("联系人：");
		scanf("%s", a[i].contact);				//联系人
		printf("联系人电话：");
		scanf("%d", &a[i].contactNum);			//联系人电话
		printf("备注：");
		scanf("%s", a[i].su_note);				//备注
		printf("------------------------------------\n");


	}
	return n;
}
//2.查询并列出表中所有供应商信息

int Search_list_Sup(sup a[], int n) {
	if (n <= 0) {
		printf("当前无供应商信息");
	} else {
		for (int i = 0; i < n; i++) {
			printf("供应商编号: %d\n", a[i].su_num);
			printf("供应商名称: %s\n", a[i].name);
			printf("供应商简称: %s\n", a[i].short_name);
			printf("地址: %s\n", a[i].address);
			printf("公司电话: %d\n", a[i].comp_phoneNum);
			printf("邮件: %s\n", a[i].mail);
			printf("联系人: %s\n", a[i].contact);
			printf("联系人电话: %d\n", a[i].contactNum);
			printf("备注: %s\n", a[i].su_note);
			printf("**********\n");
		}
	}

	return n;
}

//3.修改供应商信息
// 修改供应商信息
int Mod_supplier_data(sup a[],int n) {
	int id;
	printf("请输入供应商编号进行修改：");
	scanf("%d", &id);

	for (int i = 0; i < n; i++) {
		if (a[i].su_num == id) {
			printf("供应商编号：%d\n" );
			printf("供应商名称：");
			scanf("%s",a[i].name );
			printf("供应商简称：");
			scanf("%s",a[i].short_name);
			printf("地址：");
			scanf("%s", a[i].address);
			printf("公司电话：");
			scanf("%d", &a[i].comp_phoneNum);
			printf("邮件：");
			scanf("%s", a[i].mail);
			printf("联系人：");
			scanf("%s", a[i].contact);
			printf("联系人电话：");
			scanf("%d", &a[i].contactNum);
			printf("备注：");
			scanf("%s", a[i].su_note);
			printf("供应商信息已修改。\n");


			return 0;
		}
	}
	printf("未找到商品编号 %d，请重新输入。\n", id);
}
// 4.删除供应商
int Delete_supplier_data(sup a[],int n) {
	int id;
	printf("请输入要删除的供应商编号：");
	scanf("%d", &id);

	for (int i = 0; i < n; i++) {
		if (a[i].su_num == id) {							// 将该供应商从列表中删除

			for (int j = i; j < n - 1; j++) {
				a[j] = a[j + 1];
			}
			n--;
			printf("供应商 %d 已被删除。\n", id);
			return n;
		}
	}
	printf("未找到供应商编号 %d，请重新输入。\n", id);
}

//int Goods_Manage_Menu();									//2.0商品管理
//int Add_goods_data();											//2.1批量录入商品数据
//int Search_list_goods();										//2.2查询并列出所有商品信息
//int mod_goods_data();											//2.3修改指定商品信息
//int delete_goods_data();										//2.4删除指定商品数据
//
int Goods_Manage_Menu(goods g[],int m) {
	while(1) {

		fflush(stdin);
		system("cls");

		printf("\t------------------------------------\n");
		printf("\t\t1.批量录入商品数据\n");
		printf("\t\t2.查询并列出所有商品信息\n");
		printf("\t\t3.修改指定商品信息\n");
		printf("\t\t4.删除指定商品数据\n");
		printf("\t\t0.退出\n");
		printf("\t------------------------------------\n");

		int flag = 1;
		char goption[20];

		gets(goption);
		if(strcmp(goption,"1") == 0) {
//		printf("%d",m);
			m = Add_goods_data(g,m);						//批量录入商品
		} else if (strcmp(goption,"2") == 0) {
			Search_list_goods(g,m);							//查找并列出商品信息		
		} else if (strcmp(goption,"3") == 0) {
			Mod_goods_data(g,m);							//修改商品信息
		} else if (strcmp(goption,"4") == 0) {
		m = Delete_goods_data(g,m);							//删除指定商品
		} else if (strcmp(goption,"0") == 0) {
			return m;
		}
	}
}

int Add_goods_data(goods g[],int m) {
	printf("请输入要录入的商品数量:");
	scanf("%d", &m);
	for (int i = 0; i < m; i++) {
		printf("------------------------------------\n");//向文件中写入信息
		printf("第%d个商品： \n", i + 1);
		printf("商品数据：");
		scanf("%s", g[i].data);							//商品数据
		printf("商品编号：");
		scanf("%d", &g[i].Gnum);						//商品编号
		printf("名称：");
		scanf("%s", g[i].Gname);							//名称
		printf("单价：");
		scanf("%d", &g[i].unit_price);					//单价
		printf("供应商编号：");
		scanf("%d", &g[i].Snum);						//供应商编号
		printf("简介：");
		scanf("%s", g[i].brief_intr);					//简介
		printf("备注：");
		scanf("%s", g[i]. Gnote);						//备注
		printf("------------------------------------\n");
	}
	return m;
}


int Search_list_goods(goods g[],int m) {
	if (m <= 0) {
		printf("当前无商品信息");
		system("pause");
	} else {
		for (int i = 0; i < m; i++) {

			printf("商品编号%d\n",g[i].Gnum);
			printf("名称%s\n",g[i].Gname);
			printf("单价%d\n",&g[i].unit_price);
			printf("供应商编号%d\n",&g[i].Snum);
			printf("简介%s\n",g[i].brief_intr);
			printf("备注%s\n",g[i].Gnote);

			printf("**********\n");
//			system("pause");
		}
	}
	return m;
}

int Mod_goods_data(goods g[],int m) {
	int id;
	printf("请输入商品编号进行修改：");
	scanf("%d", &id);

	for (int i = 0; i < m; i++) {
		if (g[i].Gnum == id) {
			printf("商品编号：%d\n", g[i].Gnum);

			printf("商品数据：");
			scanf("%s", g[i].data);
			printf("商品编号：");
			scanf("%s", g[i].Gnum);
			printf("商品名称：");
			scanf("%s", g[i].Gname);
			printf("商品单价：");
			scanf("%d", &g[i].unit_price);
			printf("供应商编号：");
			scanf("%s", g[i].Snum);
			printf("简介：");
			scanf("%s", g[i].brief_intr);
			printf("备注：");
			scanf("%s", g[i].Gnote);
			printf("商品信息已修改。\n");
			return 0;
		}
	}
	printf("未找到供应商编号 %d，请重新输入。\n", id);



}


int Delete_goods_data(goods g[],int m) {
	int gid;
	printf("请输入要删除的商品编号：");
	scanf("%d", &gid);

	for (int i = 0; i < m; i++) {
		if (g[i].Gnum == gid) {							// 将该供应商从列表中删除

			for (int j = i; j < m - 1; j++) {
				g[j] = g[j + 1];
			}
			m--;
			printf("商品%d 已被删除。\n", gid);
			return m;
		}
	}
	printf("未找到商品编号 %d，请重新输入。\n", gid);
}

int  Staff_Manage_Menu(sta s[],int p){					//3.0员工管理菜单
	while(1){
		fflush(stdin);
		system("cls");
		printf("\n");
		printf("\t\t超市进销管理系统\n");
		printf("\t---------------------------------\n");
		printf("\t\t1.批量录入员工数据\n");
		printf("\t\t2.查询并列出表中所有员工信息\n");
		printf("\t\t3.修改指定员工信息\n");
		printf("\t\t4.删除指定员工数据\n");
		printf("\t\t0.退出\n");
		printf("\t---------------------------------\n");
		
		int flag = 1;
		char soption[20];
		
		gets(soption);
		if(strcmp(soption,"1") == 0){
//			Add_staff_inform(s,p);						//3.1批量录入员工数据
		}	else if(strcmp(soption,"1") == 0){
//			Search_list_staff(s,p);						//3.2查询并列出所有员工信息
		}	else if (strcmp(soption,"2") == 0){
//			mod_staff_data(s,p);						//3.3修改指定员工信息
		}	else if (strcmp(soption,"3") == 0){
//			delete_staff_data(s,p);						//3.4删除指定员工数据
		}
		
	}
}

int Add_staff_inform(sta s[],int p){				//员工信息
	printf("请输入要录入员工的数量:");
	scanf("%d", &p);
	for (int i = 0; i < p; i++) {
		printf("------------------------------------\n");//向文件中写入信息
		printf("第%d个员工： \n", i + 1);			
		printf("员工数据：");					//员工数据
		scanf("%s", s[i].stf_data);						
		printf("员工编号：");
		scanf("%d", &s[i].stf_num);				//员工编号
		printf("姓名：");
		scanf("%s", s[i].stf_name);						//姓名
		printf("密码：");
		scanf("%s", s[i].password);						//密码
		printf("级别：");
		scanf("%s", &s[i].level);					//级别
		printf("电话：");
		scanf("%d", &s[i].phoneNum);					//电话
		printf("工资：");
		scanf("%d", &s[i].wages);					//工资
		printf("备注：");
		scanf("%s", &s[i].stf_note);					//备注
		printf("------------------------------------\n");
	}
	return p;
}


